
public class EntityBlock {
	protected EntityKind kind;
	protected NameBlock nameBlock;
	protected int scopeCount;
	protected EntityBlock scopeLink;
	protected EntityBlock nameLink;

	public EntityBlock() {}

	public EntityBlock(EntityKind kind, NameBlock nameBlock, int scopeCount,
			EntityBlock scopeLink, EntityBlock nameLink) {
		super();
		this.kind = kind;
		this.nameBlock = nameBlock;
		this.scopeCount = scopeCount;
		this.scopeLink = scopeLink;
		this.nameLink = nameLink;
	}

	// Getters and Setters for the fields.
	public int getScopeCount() {
		return scopeCount;
	}

	public void setScopeCount(int scopeCount) {
		this.scopeCount = scopeCount;
	}

	public EntityKind getKind() {
		return kind;
	}
	
	public void setKind(EntityKind kind) {
		this.kind = kind;
	}

	public NameBlock getNameBlock() {
		return nameBlock;
	}

	public void setNameBlock(NameBlock nameBlock) {
		this.nameBlock = nameBlock;
	}

	public EntityBlock getScopeLink() {
		return scopeLink;
	}

	public void setScopeLink(EntityBlock scopeLink) {
		this.scopeLink = scopeLink;
	}

	public EntityBlock getNameLink() {
		return nameLink;
	}

	public void setNameLink(EntityBlock nameLink) {
		this.nameLink = nameLink;
	}
	
	public void print(String prefix) {
		//System.out.println(prefix + nameBlock.getName() + " " + kind.getKindName() + " " + scopeCount);
	}
        
        public String toString() {
          return nameBlock.getName() + " " + kind.getKindName() + " Nesting_level(" + scopeCount + ")";
        }
}

